import request from '@/utils/request'

/**
 * 查询缓存详细信息
 * @returns {Promise} 返回缓存详细信息的Promise对象
 */
export function getCache() {
  return request({
    url: '/monitor/cache',
    method: 'get'
  })
}

/**
 * 查询缓存名称列表
 * @returns {Promise} 返回缓存名称列表的Promise对象
 */
export function listCacheName() {
  return request({
    url: '/monitor/cache/getNames',
    method: 'get'
  })
}

/**
 * 查询指定缓存名称的键名列表
 * @param {string} cacheName - 缓存名称
 * @returns {Promise} 返回指定缓存名称下键名列表的Promise对象
 */
export function listCacheKey(cacheName) {
  return request({
    url: '/monitor/cache/getKeys/' + cacheName,
    method: 'get'
  })
}

/**
 * 查询指定缓存名称和键名的缓存内容
 * @param {string} cacheName - 缓存名称
 * @param {string} cacheKey - 缓存键名
 * @returns {Promise} 返回指定缓存内容的Promise对象
 */
export function getCacheValue(cacheName, cacheKey) {
  return request({
    url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey,
    method: 'get'
  })
}

/**
 * 清理指定名称的缓存
 * @param {string} cacheName - 要清理的缓存名称
 * @returns {Promise} 返回清理结果的Promise对象
 */
export function clearCacheName(cacheName) {
  return request({
    url: '/monitor/cache/clearCacheName/' + cacheName,
    method: 'delete'
  })
}

/**
 * 清理指定键名的缓存
 * @param {string} cacheKey - 要清理的缓存键名
 * @returns {Promise} 返回清理结果的Promise对象
 */
export function clearCacheKey(cacheKey) {
  return request({
    url: '/monitor/cache/clearCacheKey/' + cacheKey,
    method: 'delete'
  })
}

/**
 * 清理全部缓存
 * @returns {Promise} 返回清理结果的Promise对象
 */
export function clearCacheAll() {
  return request({
    url: '/monitor/cache/clearCacheAll',
    method: 'delete'
  })
}

